﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using LarDosIdosos.Properties;

namespace LarDosIdosos
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ValidaUsuario();
        }

        protected void buttonLogin_OnClick(object sender, EventArgs e)
        {
            Business.Model.Funcionario funcionario = new Business.Model.Funcionario();
            funcionario.ValidaUsuario(Settings.Default.StringDeConexaoComBanco, textBoxUserName.Text,
                                          textBoxPassword.Text);

            //Se a validação funfou o status Logao será true
            if (funcionario.Logado)
            {
                //Salva a sessão do usuário para as futuras validações e controle, enquanto navega pelo sistema
                Session["usuario"] = funcionario;
                RedirecionaUsuario(funcionario);
            }
            else
            {
                //MessageBox.Show("Login ou senha incorretos.", "Erro de acesso", MessageBoxButtons.OK,
                //                MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                //                MessageBoxOptions.ServiceNotification, false);
                textBoxUserName.Text = "";
                textBoxPassword.Text = "";
                labelError.Text = "Login ou senha incorretos.";
                textBoxUserName.Focus();
            }
        }

        /// <summary>
        /// Redireciona o funcionario logado para a página de sua competência
        /// </summary>
        /// <param name="funcionario"></param>
        private void RedirecionaUsuario(Business.Model.Funcionario funcionario)
        {
            switch (funcionario.Cargo_Funcionario.CodigoCargo)
            {
                case 1:
                    Response.Redirect("~/Responsavel.aspx");
                    break;
                case 2:
                    Response.Redirect("~/Idosos.aspx");
                    break;
                case 3:
                    Response.Redirect("~/Alimentos.aspx");
                    break;
                case 4:
                    Response.Redirect("~/Idosos.aspx");
                    break;
                case 5:
                    Response.Redirect("~/Idosos.aspx");
                    break;
            }
        }

        /// <summary>
        /// Valida se o usuário está logado e redireciona
        /// </summary>
        private void ValidaUsuario()
        {
            Business.Model.Funcionario funcionario = (Business.Model.Funcionario)Session["usuario"];
            if(funcionario != null)
            {
                RedirecionaUsuario(funcionario);
            }
        }
    }
}